package cn.tedu.justone.pack02;

/**
 * @作者：JustOne
 * @时间：2021/8/22 - 11:25
 */
public class Demo02_方法示例_yield礼让 {
    public static void main(String[] args) {

        //线程的常用方法-示例：yield();礼让
        //线程的常用方法-示例：yield();礼让
        //线程的常用方法-示例：yield();礼让

        //yield();礼让   yield()：也儿得
        // 1,一般写在run中，让当前线程让出时间片给别人。
        // 2,在多处理器的今天，CPU占用率不高，此方法效果不明显。
        //   就相当于公交车上有空位，让给别人了，自己还是人位坐。
        // 3,测试结果：
        //   t2用时：352
        //   t1用时：2246

        //创建t1线程，
        Thread t1 = new Thread(){
            @Override
            public void run() {
                long beginTime = System.currentTimeMillis();
                int sum = 0;
                //执行1000W次的随机数相加
                for (int i = 0; i < 10000000; i++) {
                    int ran = (int)(Math.random()*10);
                    sum += ran;
                    yield();//礼让
                }
                long endTime = System.currentTimeMillis();
                System.out.println("t1用时：" + (endTime-beginTime));
            }
        };

        //创建t2线程
        Thread t2 = new Thread(){
            @Override
            public void run() {
                long beginTime = System.currentTimeMillis();
                int sum = 0;
                //执行1000W次的随机数相加
                for (int i = 0; i < 10000000; i++) {
                    int ran = (int)(Math.random()*10);
                    sum += ran;
                }
                long endTime = System.currentTimeMillis();
                System.out.println("t2用时：" + (endTime-beginTime));
            }
        };

        t1.start();
        t2.start();
    }


}

